Distributed systems, including server farms, web services, and the like, have become increasingly common to provide resources, such as computational and storage resources. The resources may be provided by a network of servers, which can be part of a structured system to more efficiently store, retrieve, and query over data throughout the network. It may be desirable to distribute workloads across the servers, in order to optimize resource usage, maximize throughput, minimize response time, avoid overload of one of the servers, and/or achieve other load balancing objectives. However, due to the complexity of modem distributed systems, it can be challenging to effectively and efficiently determine load balancing decisions.